import を使った UserScript は実行されないことがある
2024-05-03 現在この現象は起きないと考えていいですtakker.icon
その際以前の<script>が残ったままになったり、新しい<script>がうまく読み込まれないことがあった
今はprojectを移動するとき必ず再読込されるので、常に実行されると思っていい
code: script.js
import "/api/code/~~~";
他のプロジェクトに遷移してから、UserScript が書かれたプロジェクトに再び戻ると、import "/api/code/~~~"; が実行されないっぽい?hata6502.icon
解決方法
code: script.js
import {run~~~} from "/api/code/~~~";
run~~~();
run~~~() でラッピングすると、プロジェクトを遷移したときでも UserScript が実行された。 おそらくimportの副作用が、ESModuleの読み込み時の一回だけしか実行されないからですtakker.icon import {run} from "xxx";run();なら、run()を何回でも実行できるので、<script src="xxx/script.js" />の読み込みに合わせて何度でも実行されるのでしょう
なるほどです🙏hata6502.icon
副作用を使わずに run() のほうが、引数を与えることもできて便利そう。